Марсоход отправляет на Землю структурированные данные;
в структурах применяются скобки трёх разных видов: [], () и {}.
Скобки могут быть вложены друг в друга сколько угодно раз.

Всё бы хорошо,
но во время жаркого марсианского лета марсоход перегрелся и
по неизвестной причине начал путать скобки. Это привело к тому,
что открытые скобки остаются незакрытыми и закрывающие скобки
не имеют открывающих. Прочесть такую структуру становится невозможно.

В Центре управления марсоходами решили создать программу
 для контроля за расстановкой скобок.
 Если в сообщении порядок скобок нарушен,
 марсоход создаст сообщение заново:
 в этом случае вероятность повторения ошибок минимальна.

Напишите функцию is_correct_bracket_seq(),
которая принимает на вход скобочную последовательность
и возвращает True, если последовательность правильная,
и False — в остальных случаях.

Что считать правильной последовательностью
Пустая строка — это правильная скобочная последовательность.
Правильная скобочная последовательность,
взятая в скобки одного типа, — тоже правильная: ( { [ ] } ).
Правильная скобочная последовательность с приписанной слева
или справа правильной скобочной последовательностью — правильная:
( { [ ] } ) ( [ ] ).
Формат ввода
На вход подаётся одна строка,
содержащая скобочную последовательность.
Скобки записаны подряд, без пробелов.

Формат вывода
True или False.

### Пример 1
Ввод	Вывод
{[()]}  True


### Пример 2
Ввод	Вывод
()      True


Ввод
]([(([((({))}])])([({})]}(]))](][}{{
Вывод
False